Dope vector

In computer programming, a dope vector is a data structure used to hold information about a data object,[1] e.g. an array, especially its memory layout.

A dope vector typically contains information about the type of array element, rank of an array, the extents of an array, and the stride of an array as well as a pointer to the block in memory containing the array elements.

It is often used in compilers to pass entire arrays between procedures in a high level language like Fortran.

Prior to the invention of the linked-list a dope vector was used internally in the internal structure of computer systems.

The dope vector included an identifier, a length, a parent address, and a next child address. The identifier was an assigned name and was mostly useless, but the length was the amount of allocated storage to this vector from the end of the dope vector that contained data of use to the internal processes of the computer. This length by many was called the offset, span of vector length. The parent and child references were absolute core references, or register and offset settings to the parent or child depending on the type of computer.

Dope vectors were managed internally by the operating system and allowed the processor to allocate and de-allocate storage in specific segments as needed.

Later dope vectors had a status bit that told the system if they were active; if it was not active it would be reallocated when needed. Using this technology the computer could perform a more granular memory management.

  1. ^ Pratt T. and M. Zelkowitz, Programming Languages: Design and Implementation (Third Edition), Prentice Hall, Upper Saddle River, NJ, (1996) pp 114